package com.wawayaya.fragment;

import com.wawayaya.base.BaseFragment;
import com.wawayaya.manager.MemoryManager;
import com.wawayaya.util.SoftReferenceMap;
import java.util.HashMap;
import java.util.Map;

/**
 * 管理Fragment切換，观察者模式--观察者
 * Created by David on 2015/11/7.
 * @author Daivd
 */
public class FragmentFactory {


    public static final Map<String, BaseFragment> CACHE_MAP;// 利用内存的空间换应用的执行时间

    static {
        // 判断：当前手机的可用内存 VS 应用消耗的峰值内存（缓存所有的界面，复杂的业务操作）
        if (MemoryManager.getInstance().hasAvailMemory()) {
            CACHE_MAP = new HashMap<String, BaseFragment>();
        } else {
            CACHE_MAP = new SoftReferenceMap<String, BaseFragment>();// 思路：降低（占用内存较多的）对象的引用级别——降低到软应用级别
        }
    }
}
